sitepoint.com의 Node.js 관련 Article 번역
원문 sitepoint.com의 Cloud Deployment of Node.js Applications with Nodejitsu
오역 주의 오역을 발견하시면 꼭 알려주세요~ :-)
오늘은 Nodejitsu를 사용하여 클라우드에 Node.js 애플리케이션을 배포하는 방법을 알아볼 것이다.
뉴욕의 중심부에 본사가 있는 Nodejitsu는 클라우드 컴퓨팅을 서비스하는 기업이다. Node.js를 주력으로 platform as a service(PaaS)를 제공하고 있다. 또한 그들의 클라우드에 애플리케이션을 쉽게 배포할 수 있는 도구를 제공한다. 그리고 여러분들 자신의 하드웨어(시스템)에 Node.js 클라우드 서비스를 구축하기 위해 사용할 수 있는 Haibu(Japanese for hive)라는 무료 도구도 제공을 한다. 최소한 Haibu에 대해서 언급은 해야겠지만, 오늘은 Nodejitsu 프로덕션 스택을 위주로 이야기를 할 것이다.
Nodejitsu 클라우드를 사용하려면 계정을 등록해야 한다. 다행이도 Nodejitsu는 개인 개발자들에게는 무료로 제공할 계획이다. 계정 등록을 위해 Nodejitsu 홈페이지로 가보자. “Try Nodejitsu for free”
버튼을 찾아 클릭한다. 그리고, 새로운 사용자명을 생성하고 이메일 주소를 등록한다. Nodejitsu에 배포하려는 애플리케이션의 유형에 대한 설명을 선택적으로 추가할 수 있다.
등록신청이 제출되면 추가적인 설명이 있는 확인 이메일을 받게될 것이다. 당신은 jitsu
라는 Nodejitsu의 명령행 유틸리티 모듈을 설치해야 한다. npm
으로 jitsu
를 설치하려면 다음의 명령을 사용해라. Unix 시스템상에서는 sudo
를 사용해서 명령을 실행해야 한다.
$ npm install jitsu -g
다음으로 jitsu
를 사용해서 당신의 계정을 확인하자. 당신이 받은 확인 이메일에는 아래 보이는 것과 유사한 명령이 포함되어 있어야 한다. 명령을 실행한 후에는 새로운 계정을 위한 비밀번호를 생성하라는 메시지가 나올 것이다. 비밀번호를 생성하면 이제 애플리케이션을 배포할 준비가 된 것이다!
$ jitsu users confirm your_username confirmation_code
sitepoint는 최근에 작성했던 글에서 Node.js 기반의 아주 기본적인 HTTP 서버를 만들었었다. 이 간단한 웹서버를 사용해서 우리의 첫번째 Nodejitsu 애플리케이션을 만들 것이다. 웹서버의 코드는 아래 보이는 것과 같다. 이 코드를 작성하고 “web_server.js”
라는 이름으로 저장하자.
var http = require("http");
var server = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
response.write("<!DOCTYPE \"html\">");
response.write("<html>");
response.write("<head>");
response.write("<title>Hello World Page</title>");
response.write("</head>");
response.write("<body>");
response.write("Hello World!");
response.write("</body>");
response.write("</html>");
response.end();
});
server.listen(80);
다음으로 jitsu
를 사용해서 애플리케이션을 배포한다. 명령은 아래와 같다.
$ jitsu deploy
애플리케션이 배포되기 전에 “package.json”
파일이 필요하다. Node.js에서 프로젝트들은 프로젝트에 대한 메타 데이터를 명시한 “package.json”
파일을 포함해야만 한다. 파일 확장자에서 알 수 있듯이 “package.json”
은 JSON 데이터 형식으로 되어 있다. 일반적인 패키지 파일은 패키지 이름, 의존성 정보, 버전 정보, 그리고 기타 관련 설정 데이터를 포함할 것이다.
“package.json”
파일 없이 프로젝트를 배포하려고 하면, jitsu
는 짧은 위저드(마법사)를 통해 몇단계를 거친 후 파일을 생성할 것이다. 아래 보이는 목록처럼 관련 위저드 데이터를 입력한다. App name
은 애플리케이션 이름이고 애플리케시션에 접속하기 위해서는 subdomain
을 사용할 것이다. 따라서, subdomain
은 당신의 사용자명을 포함해야만 한다. scripts.start
필드는 애플리케이션을 실행하는데 사용할 스크립트 파일을 가리킨다. version
필드는 애플리케이션의 버전을 표시하고, 마지막으로 모든 0.8 버전이 우리의 목적에 부합하기 때문에 engines.node
의 값은 지정할 필요는 없다.
App name: web_server
subdomain: webserver.your_username
scripts.start: web_server.js
version: 1.0.0
engines.node: (0.8.x)
위저드가 끝나면 아래 보이는 것과 유사한 package.json
파일이 생성될 것이다.
{
"scripts": {
"start": "web_server.js"
},
"version": "1.0.0",
"engines": {
"node": "0.8.x"
},
"name": "web_server",
"subdomain": "webserver.your_username"
}
마지막으로 설정을 확인하기 위해 yes
를 입력한다.
모든 것이 정확히 설정됐다면 당신의 웹서버는 지금 Nodejitsu 클라우드에서 실행되고 있어야 하며 그 서버에는 http://subdomain.jit.su
주소로 접속할 수 있다. 앞의 URL 중 subdomain
은 “package.json”
파일의 subdomain
값으로 대신 사용해야 한다. 예를 들어 내 서버의 경우는 http://webserver.cjihrig.jit.su
주소를 사용한다.
물론 이것은 Nodejitsu의 빙산의 일각일 뿐이다. jitsu
에 대해 실험해 보기를 바란다. 예를 들어 jitsu apps
를 실행하면 당신의 애플리케이션들을 관리하기 위한 명령어들의 목록을 확인할 수 있다. Nodejitsu 핸드북도 확인해 보면 좋을 것이다.
우리 sitepoint 독자들 중 Nodejitsu에 대한 경험이 있는 사람이 혹시 있는지...?